package alo.p6.work;

import alo.p6.BinaryTreeNode;

import java.util.LinkedList;
import java.util.Queue;
//删除某元素
//用树中最深的替代被删除的结点
public class DeleteNode {
    void deleteNode(BinaryTreeNode root,int data){
        if (root==null) return;
        BinaryTreeNode temp=null,delete=null;
        Queue<BinaryTreeNode> queue=new LinkedList<>();
        queue.offer(root);
        while (!queue.isEmpty()){
            temp=queue.poll();
            if (data==temp.getData()) delete=temp;
            if (temp.getLeft()!=null) queue.offer(temp.getLeft());
            if (temp.getRight()!=null) queue.offer(temp.getRight());
        }
        if (delete==null) return;
        delete.setData(temp.getData());
        temp=null;
    }
}
